/*	
   ______   ______    
  /\__  __\/\ \___\ 
  \/_/\ \_/\ \ \__/    __   __     __       
     \ \ \  \ \ \__\  /\ \ /\ \  /'__`\  
     _\_\ \  \ \ \_/_ \ \ \\_\ \/\  __/       
    /\____/   \ \_____\\ \_____/\ \____\   
    \_/__/     \/_____/ \/____/  \/____/                   
 
 	This file is part of the JEVE application API.

    JEve is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    JEve is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    Copyright 2008 JEve Project (JEveProject@gmail.com)
 */
package be.fomp.jeve.application.data.standard.alliancelist;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import be.fomp.jeve.application.data.standard.AllianceList.Alliance.MemberCorporation;

/**
 * <pre>
 *  ______   ______
 * /\__  __\/\ \___\
 * \/_/\ \_/\ \ \__/    __   __     __
 *    \ \ \  \ \ \__\  /\ \ /\ \  /'__`\
 *    _\_\ \  \ \ \_/_ \ \ \\_\ \/\  __/
 *   /\____/   \ \_____\\ \_____/\ \____\
 *   \_/__/     \/_____/ \/____/  \/____/
 * </pre>
 * This file is part of the JEVE application API.<br />
 * <br />
 * <p/>
 * Interface containing all the methods for the Alliance interface.
 * 
 * @author meyssven
 *
 */
public interface AllianceTemplate extends Serializable{
	
	/**
	 * This method returns the name of the alliance.
	 * @return The alliance name
	 */
	
	String getName();
	/**
	 * This method returns the sort tag of the alliance.
	 * @return The alliance short name
	 */
	
	String getShortName();
	/**
	 * This method returns the alliance ID.
	 * @return The alliance ID
	 */
	Integer getAllianceID();
	
	/**
	 * This method returns the ID of the corporation which started the alliance.
	 * @return The executor corporation id
	 */
	Integer getExecutorCorpID();
	
	/**
	 * This method returns the ammount of corporations within the alliance.
	 * @return The alliance member count
	 */
	Integer getMemberCount();
	
	/**
	 * This method returns the date when the alliance was created.
	 * @return The alliance start date
	 */
	Date getStartDate();

	/**
	 * This method returns a list of all corporations within the alliance.
	 * @return A list of corporations
	 */
	List<MemberCorporation> getMemberCorporations();
}